
package com.kgc.config;

import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrapUI;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;


/**
 * @Author：周申宇 <p>
 * @Date:2021/6/2 15:40
 * <p>
 * @Decription:
 */
@Configuration
@EnableSwaggerBootstrapUI  //  第二种： 启动swaggerbootstrap
@EnableSwagger2    // 第一种：启动swagger
public class Swagger2Config {

    @Bean
    public Docket docket(Environment environment){

        // 设置显示的swagger环境
//        Profiles profiles = Profiles.of("dev");
//        // 通过environment.acceptsProfiles(判断是否处在自己设定的环境当中)
//        boolean flag = environment.acceptsProfiles(profiles);

        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .groupName("周")
                // 是否开启swagger，当为false时浏览器无法访问swagger
                .enable(true)
                .select()
                // RequestHandlerSelectors配置要扫描接口的方式
                // basePackage：指定要扫描的包
                // any():扫描全部
                // none():不扫描
                // withClassAnnotation:扫描类上的注解，参数是一个注解的反射对象
                // withMethodAnnotation:扫描方法上的注解
                .apis(RequestHandlerSelectors.basePackage("com.kgc"))
                // paths():过滤 什么路径下
                .paths(PathSelectors.ant("/**"))
                .build();
    }


    // 配置swagger信息=apiInfo
// 配置swagger信息=apiInfo
    private ApiInfo apiInfo(){
        // 作者信息
        Contact contact  = new Contact("zhou","http://www.baidu.com","zsyuyqq.com");
        return new ApiInfo(
                "聚美优品商品业务API文档",
                "",
                "v1.0",
                "http://www.baidu.com",
                contact,
                "apache",
                "http://www.baidu.com",
                new ArrayList<>()
        );
    }


}
